var async = require("async");
var db = require("./config.js").db;
var debug = require("debug")('blog:web:read');
//获取总数
let count = function(table, callback) {
    debug("检查分类是否存在:%s", table);
    db.query('select count(*) from `article`', [table], function(err, ret) {

        callback(err, ret);
    })
}
/*
	获取文章列表
	@param {function} callback
*/
exports.shequ_index = function(callback) {
    debug("获取文章分类列表");
    db.query('SELECT * FROM `game` ORDER BY `id` ASC', function(err, ret) {
        //if(err)return callback(err);
        callback(err, ret);
    });
}

/*
	单游戏社区列表
	@param {json} req
	@param {function} callback
*/
exports.doc_doc_list = function(reqParam, callback) {
    let pageNum = 10;
    let current_page = reqParam.page;
    let shequ_id = reqParam.shequ_id;
    let offset = (current_page - 1) * pageNum;
    let sql = 'select * FROM `article`   WHERE `shequ_id`=? ORDER BY `id` DESC limit ? offset ? ';
    count("article", function(error, ret) {
        //console.log("--------------总数",JSON.parse(JSON.stringify(ret))[0]['count(*)']);
        db.query(sql, [shequ_id, pageNum, offset], function(err, ret) {
            console.log(ret)
            callback(err, ret);
        })
    })
}

/*
	获取指定文章
	@param {number} id
	@param {function} callback

*/
exports.doc_doc_detail = function(id, callback) {
    db.query('SELECT * FROM `article` WHERE `id`=? LIMIT 1', [id], function(err, list) {
        if (err) return callback(err);
        callback(err, list);
    })
}

/*
	获取指定文章评论列表
	@param {object} shequ_id doc_id
	@param {function} callback
   ct:comment
   ac:comment_list
*/
exports.comment_comment_list = function(reqParam) {
    let shequ_id = reqParam.shequ_id;
    let doc_id = reqParam.doc_id;
    return new Promise(function(resolver, reject) {
        db.query('SELECT * FROM `comment` WHERE `shequ_id`=? and `doc_id`=? and `parent_id`=0 LIMIT 10', [shequ_id, doc_id, doc_id], function(err, list) {
            if (err) reject(err);
             resolver(JSON.parse(JSON.stringify(list)));
        })
    })
}
/*
	获取指定文章评论列表
	@param {object} parent_id
	@param {function} callback
   ct:comment
   ac:comment_list
*/
exports.comment_comment_list_list = function(reqParam) {
    let shequ_id = reqParam.shequ_id;
    let doc_id = reqParam.doc_id;
    let parent_id = reqParam.parent_id;
   // console.log("--------------paranetID", parent_id)
    return new Promise(function(resolver, reject) {
        db.query('SELECT * FROM `comment` WHERE `shequ_id`=? and `doc_id`=? and `parent_id`=? LIMIT 10', [shequ_id, doc_id, parent_id], function(err, list) {
            if (err) reject(err)
           resolver(JSON.parse(JSON.stringify(list)));
        })
    })

}

/*
    获取用户信息
    @param {object} parent_id
    @param {function} callback
   ct:comment
   ac:comment_list
*/
exports.user = function(uid,resParam) {
    // console.log(uid)
    // console.log("找用户")
    return new Promise(function(resolver, reject) {
        db.query('SELECT * FROM `user` WHERE `uid`=?  LIMIT 1', [uid], function(err, list) {
            if (err) reject(err)
            //console.log(JSON.parse(JSON.stringify(list)))
           resolver({data:JSON.parse(JSON.stringify(list)),query:resParam});
        })
    })

}


//"select count(*) from kangbiao"
/*
	获取指定分类信息
	@param {number} id
	@param {function} callback

*/
exports.class = function(id, callback) {
    debug("获取指定分类信息:%s", id);
    db.query('SELECT * FROM `class_list` WHERE `id`=? LIMIT 1', function(err, list) {
        if (err) return callback(err);
        if (!(list.length > 0)) return callback(new Error("改分类不存在"));
        callback(null, list[0]);
    })
}
/*
	@获取指定文章的详细信息
	@param {string} id
	@param {function} callback

*/
exports.article = function(id, callback) {
    debug('获取指定文章的详细信息：%s', id);

    var sql = 'SELECT * FROM `article_list` AS `A`' +
        ' LEFT JOIN `article_detail` AS `B` ON `A`.`id`=`B`.`id`' +
        ' WHERE `A`.`id`=? LIMIT 1';
    db.query(sql, [id], function(err, list) {
        if (err) return callback(err);
        if (!(list.length > 0)) return callback(new Error('该文章不存在'));

        callback(null, list[0]);
    });
};
/*
	获取指定分类下的文章列表

	查询 文章列表（article_list） 左关联  文章详情表（article_detail） 
	怎么关联  ？通过 article_list 的 字段 id  和  article_detail 的id       
	查询条件是  文章列表article_list 的 class_id = 查询条件  并且按 。。。这个地方写错了吧
	 按照谁的 created_time 进行倒序排列 也就是时间越靠近现在时间的 排在前面
	@param {number} classID
	@param {number} offset
	@param {number} limit
	@param {function} callback
*/
exports.articleListByClassId = function(classId, offset, limit, callback) {
    debug('获取指定分类下的文章列表：%s, %s, %s', classId, offset, limit);

    var sql = 'SELECT * FROM `article_list` AS `A`' +
        ' LEFT JOIN `article_detail` AS `B` ON `A`.`id`=`B`.`id`' +
        ' WHERE `A`.`class_id`=?' +
        ' ORDER BY `created_time` DESC LIMIT ?,?';
    db.query(sql, [classId, offset, limit], callback);
};

/*
	获取指定标签下的文章列表
	@param {string} tag
	@param {number} offset
	@param {number} limit
	@param {function} callback

*/
exports.articleListByTag = function(tag, offset, limit, callback) {
    debug("获取指定标签下的文章列表：%s,%s,%s", tag, offset, limit);
    var sql = 'SELECT *FROM `article_list` WHERE `id` IN (' +
        'SELECT `id` REOM `article_tag` WHERE `tag` =?' +
        'ORDER BY `create_time` DESC LIMIT';
    db.query(sql, [tag, offset, limit], callback);
}


/*
	获取指定标签下的文章数量
	@param{string} tag
	@param {function} callback
*/
exports.articleCountByTag = function(tag, calback) {
    debug('获取指定标签下的文章数量:%s', tag);
    db.query('SELECT COUNT(*) AS `c` FROM `article_tag` WHERE `tag`=?', [tag], function(err, ret) {
        if (err) return callback(err);
        callback(null, ret[0].c);
    })
};